mirror of
https://github.com/Dokploy/dokploy
synced 2025-06-26 18:27:59 +00:00
refactor: add license
This commit is contained in:
@@ -54,9 +54,9 @@ const tabMap: Record<TabState, TabInfo> = {
|
||||
label: "Requests",
|
||||
description: "Manage your requests",
|
||||
index: "/dashboard/requests",
|
||||
// isShow: ({ rol, user }) => {
|
||||
// return Boolean(rol === "admin" || user?.canAccessToDocker);
|
||||
// },
|
||||
isShow: ({ rol, user }) => {
|
||||
return Boolean(rol === "admin" || user?.canAccessToDocker);
|
||||
},
|
||||
},
|
||||
settings: {
|
||||
label: "Settings",
|
||||
|
||||
@@ -4,6 +4,7 @@ import type { GetServerSidePropsContext } from "next";
|
||||
import type { ReactElement } from "react";
|
||||
import * as React from "react";
|
||||
import { ShowRequests } from "@/components/dashboard/requests/show-requests";
|
||||
import { isValidLicense } from "@/server/api/services/license";
|
||||
|
||||
export default function Requests() {
|
||||
return <ShowRequests />;
|
||||
@@ -24,6 +25,17 @@ export async function getServerSideProps(
|
||||
};
|
||||
}
|
||||
|
||||
const isValid = await isValidLicense();
|
||||
|
||||
if (!isValid) {
|
||||
return {
|
||||
redirect: {
|
||||
permanent: true,
|
||||
destination: "/dashboard/projects",
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
props: {},
|
||||
};
|
||||
|
||||
@@ -28,9 +28,7 @@ import { toast } from "sonner";
|
||||
import { z } from "zod";
|
||||
|
||||
const schema = z.object({
|
||||
licenseKey: z.string().min(1, {
|
||||
message: "License key is required",
|
||||
}),
|
||||
licenseKey: z.string(),
|
||||
});
|
||||
|
||||
type Schema = z.infer<typeof schema>;
|
||||
|
||||
@@ -7,6 +7,12 @@ export const licenseRouter = createTRPCRouter({
|
||||
setLicense: adminProcedure.input(z.string()).mutation(async ({ input }) => {
|
||||
const admin = await findAdmin();
|
||||
|
||||
if (!input) {
|
||||
return await updateAdmin(admin.authId, {
|
||||
licenseKey: "",
|
||||
});
|
||||
}
|
||||
|
||||
try {
|
||||
const result = await fetch("http://127.0.0.1:4000/v1/validate-license", {
|
||||
method: "POST",
|
||||
|
||||
18
apps/dokploy/server/api/services/license.ts
Normal file
18
apps/dokploy/server/api/services/license.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
import { findAdmin } from "./admin";
|
||||
|
||||
export const isValidLicense = async () => {
|
||||
const admin = await findAdmin();
|
||||
|
||||
const result = await fetch("http://127.0.0.1:4000/v1/validate-license", {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify({
|
||||
licenseKey: admin.licenseKey,
|
||||
}),
|
||||
});
|
||||
|
||||
const data = await result.json();
|
||||
return data.valid;
|
||||
};
|
||||
Reference in New Issue
Block a user