mirror of
https://github.com/Dokploy/dokploy
synced 2025-06-26 18:27:59 +00:00
- Modified the `isEnabled` function in the side menu to check if the user has the "owner" role in addition to the non-cloud environment condition. - Updated the server-side props validation in the schedules page to redirect users who are not owners, enhancing security and access control.
55 lines
1.4 KiB
TypeScript
55 lines
1.4 KiB
TypeScript
import { DashboardLayout } from "@/components/layouts/dashboard-layout";
|
|
import type { ReactElement } from "react";
|
|
import type { GetServerSidePropsContext } from "next";
|
|
import { validateRequest } from "@dokploy/server/lib/auth";
|
|
import { IS_CLOUD } from "@dokploy/server/constants";
|
|
import { api } from "@/utils/api";
|
|
import { ShowSchedules } from "@/components/dashboard/application/schedules/show-schedules";
|
|
import { Card } from "@/components/ui/card";
|
|
function SchedulesPage() {
|
|
const { data: user } = api.user.get.useQuery();
|
|
return (
|
|
<div className="w-full">
|
|
<Card className="h-full bg-sidebar p-2.5 rounded-xl max-w-8xl mx-auto min-h-[45vh]">
|
|
<div className="rounded-xl bg-background shadow-md h-full">
|
|
<ShowSchedules
|
|
scheduleType="dokploy-server"
|
|
id={user?.user.id || ""}
|
|
/>
|
|
</div>
|
|
</Card>
|
|
</div>
|
|
);
|
|
}
|
|
export default SchedulesPage;
|
|
|
|
SchedulesPage.getLayout = (page: ReactElement) => {
|
|
return <DashboardLayout>{page}</DashboardLayout>;
|
|
};
|
|
|
|
export async function getServerSideProps(
|
|
ctx: GetServerSidePropsContext<{ serviceId: string }>,
|
|
) {
|
|
if (IS_CLOUD) {
|
|
return {
|
|
redirect: {
|
|
permanent: true,
|
|
destination: "/dashboard/projects",
|
|
},
|
|
};
|
|
}
|
|
const { user } = await validateRequest(ctx.req);
|
|
if (!user || user.role !== "owner") {
|
|
return {
|
|
redirect: {
|
|
permanent: true,
|
|
destination: "/",
|
|
},
|
|
};
|
|
}
|
|
|
|
return {
|
|
props: {},
|
|
};
|
|
}
|