mirror of
https://github.com/Dokploy/dokploy.git
synced 2026-10-17 22:25:32 +00:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 165746ca46 |
@@ -20,8 +20,8 @@ import {
|
||||
} from "@dokploy/server";
|
||||
import { db } from "@dokploy/server/db";
|
||||
import {
|
||||
checkPermission,
|
||||
findMemberByUserId,
|
||||
hasPermission,
|
||||
} from "@dokploy/server/services/permission";
|
||||
import { hasValidLicense } from "@dokploy/server/services/proprietary/license-key";
|
||||
import { TRPCError } from "@trpc/server";
|
||||
@@ -54,22 +54,6 @@ import {
|
||||
} from "@/server/db/schema";
|
||||
import { applyDockerCleanupSchedule } from "@/server/utils/docker-cleanup";
|
||||
|
||||
// Users without server.read only get what the server pickers render
|
||||
const toServerOptions = async (
|
||||
ctx: Parameters<typeof hasPermission>[0],
|
||||
servers: (typeof server.$inferSelect)[],
|
||||
) => {
|
||||
await findMemberByUserId(ctx.user.id, ctx.session.activeOrganizationId);
|
||||
if (await hasPermission(ctx, { server: ["read"] })) {
|
||||
return servers;
|
||||
}
|
||||
return servers.map(({ serverId, name, ipAddress }) => ({
|
||||
serverId,
|
||||
name,
|
||||
ipAddress,
|
||||
}));
|
||||
};
|
||||
|
||||
export const serverRouter = createTRPCRouter({
|
||||
create: withPermission("server", "create")
|
||||
.input(apiCreateServer)
|
||||
@@ -236,9 +220,14 @@ export const serverRouter = createTRPCRouter({
|
||||
return servers.length ?? 0;
|
||||
}),
|
||||
withSSHKey: protectedProcedure.query(async ({ ctx }) => {
|
||||
await checkPermission(
|
||||
ctx,
|
||||
IS_CLOUD ? { service: ["create"] } : { server: ["read"] },
|
||||
);
|
||||
const accessibleIds = await getAccessibleServerIds(ctx.session);
|
||||
|
||||
const result = await db.query.server.findMany({
|
||||
columns: { serverId: true, name: true, ipAddress: true },
|
||||
orderBy: desc(server.createdAt),
|
||||
where: IS_CLOUD
|
||||
? and(
|
||||
@@ -253,12 +242,9 @@ export const serverRouter = createTRPCRouter({
|
||||
eq(server.serverType, "deploy"),
|
||||
),
|
||||
});
|
||||
return toServerOptions(
|
||||
ctx,
|
||||
result.filter((s) => accessibleIds.has(s.serverId)),
|
||||
);
|
||||
return result.filter((s) => accessibleIds.has(s.serverId));
|
||||
}),
|
||||
buildServers: protectedProcedure.query(async ({ ctx }) => {
|
||||
buildServers: withPermission("server", "read").query(async ({ ctx }) => {
|
||||
const accessibleIds = await getAccessibleServerIds(ctx.session);
|
||||
|
||||
const result = await db.query.server.findMany({
|
||||
@@ -276,10 +262,7 @@ export const serverRouter = createTRPCRouter({
|
||||
eq(server.serverType, "build"),
|
||||
),
|
||||
});
|
||||
return toServerOptions(
|
||||
ctx,
|
||||
result.filter((s) => accessibleIds.has(s.serverId)),
|
||||
);
|
||||
return result.filter((s) => accessibleIds.has(s.serverId));
|
||||
}),
|
||||
setup: withPermission("server", "create")
|
||||
.input(apiFindOneServer)
|
||||
|
||||
Reference in New Issue
Block a user