refactor: prevents mixed server/clients imports (#21499)

This commit is contained in:
Omar López authored and GitHub committed 2025-05-25 09:07:49 +00:00
1 parent 8511494d68
commit bda963b851
13 files changed
+32 -31

No files matched your search

@@ -3,7 +3,7 @@ import type { NextApiRequest, NextApiResponse } from "next";
import { getSession } from "next-auth/react";
import { sanitizeValue } from "@calcom/lib/csvUtils";
import { entityPrismaWhereClause, canEditEntity } from "@calcom/lib/entityPermissionUtils";
import { entityPrismaWhereClause, canEditEntity } from "@calcom/lib/entityPermissionUtils.server";
import prisma from "@calcom/prisma";
import { getSerializableForm } from "../../lib/getSerializableForm";
@@ -1,7 +1,7 @@
import type { App_RoutingForms_Form } from "@prisma/client";
import type { z } from "zod";
import { entityPrismaWhereClause } from "@calcom/lib/entityPermissionUtils";
import { entityPrismaWhereClause } from "@calcom/lib/entityPermissionUtils.server";
import logger from "@calcom/lib/logger";
import { safeStringify } from "@calcom/lib/safeStringify";
import { RoutingFormSettings } from "@calcom/prisma/zod-utils";
@@ -1,6 +1,6 @@
import type { App_RoutingForms_Form, User } from "@prisma/client";
import { canCreateEntity, canEditEntity } from "@calcom/lib/entityPermissionUtils";
import { canCreateEntity, canEditEntity } from "@calcom/lib/entityPermissionUtils.server";
import prisma from "@calcom/prisma";
export async function isFormCreateEditAllowed({
@@ -12,7 +12,7 @@ import { Toaster } from "sonner";
import type { z } from "zod";
import { useOrgBranding } from "@calcom/features/ee/organizations/context/provider";
import { areTheySiblingEntitites } from "@calcom/lib/entityPermissionUtils";
import { areTheySiblingEntities } from "@calcom/lib/entityPermissionUtils.shared";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { buildEmptyQueryValue, raqbQueryValueUtils } from "@calcom/lib/raqb/raqbUtils";
import { SchedulingType } from "@calcom/prisma/client";
@@ -161,7 +161,7 @@ const buildEventsData = ({
}
>();
eventTypesByGroup?.eventTypeGroups.forEach((group) => {
const eventTypeValidInContext = areTheySiblingEntitites({
const eventTypeValidInContext = areTheySiblingEntities({
entity1: {
teamId: group.teamId ?? null,
// group doesn't have userId. The query ensures that it belongs to the user only, if teamId isn't set. So, I am manually setting it to the form userId
@@ -1164,7 +1164,7 @@ const Routes = ({
const availableRouters =
allForms?.filtered
.filter(({ form: router }) => {
const routerValidInContext = areTheySiblingEntitites({
const routerValidInContext = areTheySiblingEntities({
entity1: {
teamId: router.teamId ?? null,
// group doesn't have userId. The query ensures that it belongs to the user only, if teamId isn't set. So, I am manually setting it to the form userId
@@ -1,4 +1,4 @@
import { entityPrismaWhereClause } from "@calcom/lib/entityPermissionUtils";
import { entityPrismaWhereClause } from "@calcom/lib/entityPermissionUtils.server";
import type { PrismaClient } from "@calcom/prisma";
import type { TrpcSessionUser } from "@calcom/trpc/server/types";
@@ -1,7 +1,7 @@
import type { App_RoutingForms_Form } from "@prisma/client";
import { Prisma } from "@prisma/client";
import { entityPrismaWhereClause, canEditEntity } from "@calcom/lib/entityPermissionUtils";
import { entityPrismaWhereClause, canEditEntity } from "@calcom/lib/entityPermissionUtils.server";
import type { PrismaClient } from "@calcom/prisma";
import type { TrpcSessionUser } from "@calcom/trpc/server/types";
@@ -1,4 +1,4 @@
import { entityPrismaWhereClause } from "@calcom/lib/entityPermissionUtils";
import { entityPrismaWhereClause } from "@calcom/lib/entityPermissionUtils.server";
import type { PrismaClient } from "@calcom/prisma";
import type { TrpcSessionUser } from "@calcom/trpc/server/types";
@@ -1,7 +1,7 @@
import type { z } from "zod";
import { hasFilter } from "@calcom/features/filters/lib/hasFilter";
import { entityPrismaWhereClause, canEditEntity } from "@calcom/lib/entityPermissionUtils";
import { entityPrismaWhereClause, canEditEntity } from "@calcom/lib/entityPermissionUtils.server";
import logger from "@calcom/lib/logger";
import { safeStringify } from "@calcom/lib/safeStringify";
import type { PrismaClient } from "@calcom/prisma";
@@ -1,6 +1,6 @@
import type { z } from "zod";
import { canAccessEntity } from "@calcom/lib/entityPermissionUtils";
import { canAccessEntity } from "@calcom/lib/entityPermissionUtils.server";
import { getTranslation } from "@calcom/lib/server/i18n";
import { prisma } from "@calcom/prisma";
import type { TrpcSessionUser } from "@calcom/trpc/server/types";
@@ -140,21 +140,3 @@ export const entityPrismaWhereClause = ({ userId }: { userId: number }) => ({
},
],
});
/**
* It returns true if the two entities are created for the same team or same user.
*/
export const areTheySiblingEntitites = ({
entity1,
entity2,
}: {
entity1: { teamId: number | null; userId: number | null };
entity2: { teamId: number | null; userId: number | null };
}) => {
if (entity1.teamId) {
return entity1.teamId === entity2.teamId;
}
// If entity doesn't belong to a team, then target shouldn't be a team.
// Also check for `userId` now.
return !entity2.teamId && entity1.userId === entity2.userId;
};
@@ -0,0 +1,19 @@
// Pure/shared entity permission utilities for use in both client and server environments
/**
* It returns true if the two entities are created for the same team or same user.
*/
export const areTheySiblingEntities = ({
entity1,
entity2,
}: {
entity1: { teamId: number | null; userId: number | null };
entity2: { teamId: number | null; userId: number | null };
}) => {
if (entity1.teamId) {
return entity1.teamId === entity2.teamId;
}
// If entity doesn't belong to a team, then target shouldn't be a team.
// Also check for `userId` now.
return !entity2.teamId && entity1.userId === entity2.userId;
};
@@ -1,5 +1,5 @@
import { getPlaceholderAvatar } from "@calcom/lib/defaultAvatarImage";
import { withRoleCanCreateEntity } from "@calcom/lib/entityPermissionUtils";
import { withRoleCanCreateEntity } from "@calcom/lib/entityPermissionUtils.server";
import { getUserAvatarUrl } from "@calcom/lib/getAvatarUrl";
import type { PrismaClient } from "@calcom/prisma";
import { teamMetadataSchema } from "@calcom/prisma/zod-utils";
@@ -10,7 +10,7 @@ import type { NextApiResponse } from "next";
import { enrichFormWithMigrationData } from "@calcom/app-store/routing-forms/enrichFormWithMigrationData";
import { getUrlSearchParamsToForwardForTestPreview } from "@calcom/app-store/routing-forms/pages/routing-link/getUrlSearchParamsToForward";
import { enrichHostsWithDelegationCredentials } from "@calcom/lib/delegationCredential/server";
import { entityPrismaWhereClause } from "@calcom/lib/entityPermissionUtils";
import { entityPrismaWhereClause } from "@calcom/lib/entityPermissionUtils.server";
import { fromEntriesWithDuplicateKeys } from "@calcom/lib/fromEntriesWithDuplicateKeys";
import { findTeamMembersMatchingAttributeLogic } from "@calcom/lib/raqb/findTeamMembersMatchingAttributeLogic";
import { getOrderedListOfLuckyUsers } from "@calcom/lib/server/getLuckyUser";